﻿#pragma once

#include <SFML/Graphics.hpp>
#include "../../concrete/graphic/AccusationView.h"
#include "../../../domain/models/CardSet.h"
#include "../../../domain/models/Player.h"
#include "../../../domain/network/GameClient.h"

namespace Views {
	/**
	* Widoki skojarzone z graczem podłączonym do serwera, którego teraz trwa tura
	*/
	namespace Client {
		class AccusationView: public Graphic::AccusationView
		{
		protected:
			Domain::Network::GameClient* client; /**< Klient gracza wysuwającego oskarżenie */

		public:
			/**
			* @param game_client Połączony z serwerem klient gry
			* @param form Główna formatka aplikacji
			*/
			AccusationView(Domain::Network::GameClient*, Utils::GUI::Form*);

		protected:
			/**
			* Wysyła do serwera decyzje o podjęciu oskarżenia i wywołuje metodę z klasy nadrzędnej
			* @param decision Decyzja
			*/
			virtual void onDecisionSet(bool decision);
			/**
			* Wysyła do serwera decyzje o kartach w oskarżeniu i wywołuje metodę z klasy nadrzędnej
			* @param cards Karty w oskarżeniu
			*/
			virtual void onCardsSet(Cards::CardSet cards);
		};
	}
}

